home *** CD-ROM | disk | FTP | other *** search
- package java.net;
-
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.util.Date;
- import java.util.Hashtable;
- import java.util.StringTokenizer;
-
- public abstract class URLConnection {
- protected URL url;
- protected boolean doInput = true;
- protected boolean doOutput = false;
- private static boolean defaultAllowUserInteraction;
- protected boolean allowUserInteraction;
- private static boolean defaultUseCaches = true;
- protected boolean useCaches;
- protected long ifModifiedSince;
- protected boolean connected;
- static ContentHandlerFactory factory;
- private static Hashtable handlers = new Hashtable();
- private static ContentHandler UnknownContentHandlerP = new UnknownContentHandler();
- private static final String contentClassPrefix = "sun.net.www.content";
- private static final String contentPathProp = "java.content.handler.pkgs";
- static Hashtable extension_map = new Hashtable();
-
- public abstract void connect() throws IOException;
-
- protected URLConnection(URL var1) {
- this.allowUserInteraction = defaultAllowUserInteraction;
- this.useCaches = defaultUseCaches;
- this.connected = false;
- this.url = var1;
- }
-
- public URL getURL() {
- return this.url;
- }
-
- public int getContentLength() {
- return this.getHeaderFieldInt("content-length", -1);
- }
-
- public String getContentType() {
- return this.getHeaderField("content-type");
- }
-
- public String getContentEncoding() {
- return this.getHeaderField("content-encoding");
- }
-
- public long getExpiration() {
- return this.getHeaderFieldDate("expires", 0L);
- }
-
- public long getDate() {
- return this.getHeaderFieldDate("date", 0L);
- }
-
- public long getLastModified() {
- return this.getHeaderFieldDate("last-modified", 0L);
- }
-
- public String getHeaderField(String var1) {
- return null;
- }
-
- public int getHeaderFieldInt(String var1, int var2) {
- try {
- String var3 = this.getHeaderField(var1);
- return Integer.parseInt(var3, 10);
- } catch (Throwable var4) {
- return var2;
- }
- }
-
- public long getHeaderFieldDate(String var1, long var2) {
- try {
- return Date.parse(this.getHeaderField(var1));
- } catch (Throwable var4) {
- return var2;
- }
- }
-
- public String getHeaderFieldKey(int var1) {
- return null;
- }
-
- public String getHeaderField(int var1) {
- return null;
- }
-
- public Object getContent() throws IOException {
- return this.getContentHandler().getContent(this);
- }
-
- public InputStream getInputStream() throws IOException {
- throw new UnknownServiceException("protocol doesn't support input");
- }
-
- public OutputStream getOutputStream() throws IOException {
- throw new UnknownServiceException("protocol doesn't support output");
- }
-
- public String toString() {
- return this.getClass().getName() + ":" + this.url;
- }
-
- public void setDoInput(boolean var1) {
- if (this.connected) {
- throw new IllegalAccessError("Already connected");
- } else {
- this.doInput = var1;
- }
- }
-
- public boolean getDoInput() {
- return this.doInput;
- }
-
- public void setDoOutput(boolean var1) {
- if (this.connected) {
- throw new IllegalAccessError("Already connected");
- } else {
- this.doOutput = var1;
- }
- }
-
- public boolean getDoOutput() {
- return this.doOutput;
- }
-
- public void setAllowUserInteraction(boolean var1) {
- if (this.connected) {
- throw new IllegalAccessError("Already connected");
- } else {
- this.allowUserInteraction = var1;
- }
- }
-
- public boolean getAllowUserInteraction() {
- return this.allowUserInteraction;
- }
-
- public static void setDefaultAllowUserInteraction(boolean var0) {
- defaultAllowUserInteraction = var0;
- }
-
- public static boolean getDefaultAllowUserInteraction() {
- return defaultAllowUserInteraction;
- }
-
- public void setUseCaches(boolean var1) {
- if (this.connected) {
- throw new IllegalAccessError("Already connected");
- } else {
- this.useCaches = var1;
- }
- }
-
- public boolean getUseCaches() {
- return this.useCaches;
- }
-
- public void setIfModifiedSince(long var1) {
- if (this.connected) {
- throw new IllegalAccessError("Already connected");
- } else {
- this.ifModifiedSince = var1;
- }
- }
-
- public long getIfModifiedSince() {
- return this.ifModifiedSince;
- }
-
- public boolean getDefaultUseCaches() {
- return defaultUseCaches;
- }
-
- public void setDefaultUseCaches(boolean var1) {
- defaultUseCaches = var1;
- }
-
- public void setRequestProperty(String var1, String var2) {
- if (this.connected) {
- throw new IllegalAccessError("Already connected");
- }
- }
-
- public String getRequestProperty(String var1) {
- if (this.connected) {
- throw new IllegalAccessError("Already connected");
- } else {
- return null;
- }
- }
-
- public static void setDefaultRequestProperty(String var0, String var1) {
- }
-
- public static String getDefaultRequestProperty(String var0) {
- return null;
- }
-
- public static synchronized void setContentHandlerFactory(ContentHandlerFactory var0) {
- if (factory != null) {
- throw new Error("factory already defined");
- } else {
- SecurityManager var1 = System.security;
- if (var1 != null) {
- var1.checkSetFactory();
- }
-
- factory = var0;
- }
- }
-
- synchronized ContentHandler getContentHandler() throws UnknownServiceException {
- String var1 = this.getContentType();
- ContentHandler var2 = null;
- if (var1 == null) {
- throw new UnknownServiceException("no content-type");
- } else {
- try {
- var2 = (ContentHandler)handlers.get(var1);
- if (var2 != null) {
- return var2;
- }
- } catch (Exception var5) {
- }
-
- if (factory != null) {
- var2 = factory.createContentHandler(var1);
- }
-
- if (var2 == null) {
- try {
- var2 = this.lookupContentHandlerClassFor(var1);
- } catch (Exception var4) {
- ((Throwable)var4).printStackTrace();
- var2 = UnknownContentHandlerP;
- }
-
- handlers.put(var1, var2);
- }
-
- return var2;
- }
- }
-
- private ContentHandler lookupContentHandlerClassFor(String var1) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
- String var2 = this.typeToPackageName(var1);
- String var3 = this.getContentHandlerPkgPrefixes();
- StringTokenizer var4 = new StringTokenizer(var3, "|");
-
- while(var4.hasMoreTokens()) {
- String var5 = var4.nextToken().trim();
-
- try {
- String var6 = var5 + "." + var2;
- ContentHandler var7 = (ContentHandler)Class.forName(var6).newInstance();
- return var7;
- } catch (Exception var8) {
- }
- }
-
- return UnknownContentHandlerP;
- }
-
- private String typeToPackageName(String var1) {
- int var2 = var1.count;
- char[] var3 = new char[var2];
- System.arraycopy(var1.value, var1.offset, var3, 0, var2);
-
- for(int var4 = 0; var4 < var2; ++var4) {
- char var5 = var3[var4];
- if (var5 == '/') {
- var3[var4] = '.';
- } else if ((var5 < 'A' || var5 > 'Z') && (var5 < 'a' || var5 > 'z') && (var5 < '0' || var5 > '9')) {
- var3[var4] = '_';
- }
- }
-
- return new String(var3);
- }
-
- private String getContentHandlerPkgPrefixes() {
- String var1 = System.getProperty("java.content.handler.pkgs", "");
- if (var1 != "") {
- var1 = var1 + "|";
- }
-
- return var1 + "sun.net.www.content";
- }
-
- protected static String guessContentTypeFromName(String var0) {
- String var1 = "";
- int var2 = var0.lastIndexOf(35, var0.count - 1);
- if (var2 != -1) {
- var0 = var0.substring(0, var2 - 1);
- }
-
- var2 = var0.lastIndexOf(46, var0.count - 1);
- int var3 = var0.lastIndexOf(47, var0.count - 1);
- var2 = var2 >= var3 ? var2 : var3;
- var3 = var0.lastIndexOf(63, var0.count - 1);
- var2 = var2 >= var3 ? var2 : var3;
- if (var2 != -1 && var0.charAt(var2) == '.') {
- var1 = var0.substring(var2, var0.count).toLowerCase();
- }
-
- return (String)extension_map.get(var1);
- }
-
- private static void setSuffix(String var0, String var1) {
- extension_map.put(var0, var1);
- }
-
- protected static String guessContentTypeFromStream(InputStream var0) throws IOException {
- var0.mark(10);
- int var1 = var0.read();
- int var2 = var0.read();
- int var3 = var0.read();
- int var4 = var0.read();
- int var5 = var0.read();
- int var6 = var0.read();
- var0.reset();
- if (var1 == 71 && var2 == 73 && var3 == 70 && var4 == 56) {
- return "image/gif";
- } else if (var1 == 35 && var2 == 100 && var3 == 101 && var4 == 102) {
- return "image/x-bitmap";
- } else if (var1 == 33 && var2 == 32 && var3 == 88 && var4 == 80 && var5 == 77 && var6 == 50) {
- return "image/x-pixmap";
- } else {
- return var1 != 60 || var2 != 33 && (var6 != 62 || (var2 != 104 || (var3 != 116 || var4 != 109 || var5 != 108) && (var3 != 101 || var4 != 97 || var5 != 100)) && (var2 != 98 || var3 != 111 || var4 != 100 || var5 != 121)) ? null : "text/html";
- }
- }
-
- static {
- setSuffix("", "content/unknown");
- setSuffix(".uu", "application/octet-stream");
- setSuffix(".saveme", "application/octet-stream");
- setSuffix(".dump", "application/octet-stream");
- setSuffix(".hqx", "application/octet-stream");
- setSuffix(".arc", "application/octet-stream");
- setSuffix(".o", "application/octet-stream");
- setSuffix(".a", "application/octet-stream");
- setSuffix(".bin", "application/octet-stream");
- setSuffix(".exe", "application/octet-stream");
- setSuffix(".z", "application/octet-stream");
- setSuffix(".gz", "application/octet-stream");
- setSuffix(".oda", "application/oda");
- setSuffix(".pdf", "application/pdf");
- setSuffix(".eps", "application/postscript");
- setSuffix(".ai", "application/postscript");
- setSuffix(".ps", "application/postscript");
- setSuffix(".rtf", "application/rtf");
- setSuffix(".dvi", "application/x-dvi");
- setSuffix(".hdf", "application/x-hdf");
- setSuffix(".latex", "application/x-latex");
- setSuffix(".cdf", "application/x-netcdf");
- setSuffix(".nc", "application/x-netcdf");
- setSuffix(".tex", "application/x-tex");
- setSuffix(".texinfo", "application/x-texinfo");
- setSuffix(".texi", "application/x-texinfo");
- setSuffix(".t", "application/x-troff");
- setSuffix(".tr", "application/x-troff");
- setSuffix(".roff", "application/x-troff");
- setSuffix(".man", "application/x-troff-man");
- setSuffix(".me", "application/x-troff-me");
- setSuffix(".ms", "application/x-troff-ms");
- setSuffix(".src", "application/x-wais-source");
- setSuffix(".wsrc", "application/x-wais-source");
- setSuffix(".zip", "application/zip");
- setSuffix(".bcpio", "application/x-bcpio");
- setSuffix(".cpio", "application/x-cpio");
- setSuffix(".gtar", "application/x-gtar");
- setSuffix(".shar", "application/x-shar");
- setSuffix(".sh", "application/x-shar");
- setSuffix(".sv4cpio", "application/x-sv4cpio");
- setSuffix(".sv4crc", "application/x-sv4crc");
- setSuffix(".tar", "application/x-tar");
- setSuffix(".ustar", "application/x-ustar");
- setSuffix(".snd", "audio/basic");
- setSuffix(".au", "audio/basic");
- setSuffix(".aifc", "audio/x-aiff");
- setSuffix(".aif", "audio/x-aiff");
- setSuffix(".aiff", "audio/x-aiff");
- setSuffix(".wav", "audio/x-wav");
- setSuffix(".gif", "image/gif");
- setSuffix(".ief", "image/ief");
- setSuffix(".jfif", "image/jpeg");
- setSuffix(".jfif-tbnl", "image/jpeg");
- setSuffix(".jpe", "image/jpeg");
- setSuffix(".jpg", "image/jpeg");
- setSuffix(".jpeg", "image/jpeg");
- setSuffix(".tif", "image/tiff");
- setSuffix(".tiff", "image/tiff");
- setSuffix(".ras", "image/x-cmu-rast");
- setSuffix(".pnm", "image/x-portable-anymap");
- setSuffix(".pbm", "image/x-portable-bitmap");
- setSuffix(".pgm", "image/x-portable-graymap");
- setSuffix(".ppm", "image/x-portable-pixmap");
- setSuffix(".rgb", "image/x-rgb");
- setSuffix(".xbm", "image/x-xbitmap");
- setSuffix(".xpm", "image/x-xpixmap");
- setSuffix(".xwd", "image/x-xwindowdump");
- setSuffix(".htm", "text/html");
- setSuffix(".html", "text/html");
- setSuffix(".text", "text/plain");
- setSuffix(".c", "text/plain");
- setSuffix(".cc", "text/plain");
- setSuffix(".c++", "text/plain");
- setSuffix(".h", "text/plain");
- setSuffix(".pl", "text/plain");
- setSuffix(".txt", "text/plain");
- setSuffix(".java", "text/plain");
- setSuffix(".rtx", "application/rtf");
- setSuffix(".tsv", "text/tab-separated-values");
- setSuffix(".etx", "text/x-setext");
- setSuffix(".mpg", "video/mpeg");
- setSuffix(".mpe", "video/mpeg");
- setSuffix(".mpeg", "video/mpeg");
- setSuffix(".mov", "video/quicktime");
- setSuffix(".qt", "video/quicktime");
- setSuffix(".avi", "application/x-troff-msvideo");
- setSuffix(".movie", "video/x-sgi-movie");
- setSuffix(".mv", "video/x-sgi-movie");
- setSuffix(".mime", "message/rfc822");
- }
- }
-